//
//  UIImage+Extension.h
//  LYExtensionCode
//
//  Created by cqck on 2020/11/4.
//

#import <UIKit/UIKit.h>

@interface UIImage (Extension)

/*!
 * @brief 创建圆形图片
 * @param imageNamed    图片名字
 * @param opaue               是否透明背景
 * @return UIImage 实例
 */
+ (instancetype)imageCircleWithImageNamed:(NSString *)imageNamed
                                   opaque:(BOOL)opaue;

/*!
 * @brief 创建圆形图片
 * @param imageNamed     图片名字
 * @param borderColor   边框颜色
 * @param borderWidth   边框宽度
 * @param opaue               是否透明背景
 * @return UIImage 实例
 */
+ (instancetype)imageCircleWithImageNamed:(NSString *)imageNamed
                              borderColor:(UIColor *)borderColor
                              borderWidth:(CGFloat)borderWidth
                                   opaque:(BOOL)opaue;

/*!
 * @brief 创建圆形图片
 * @param image                图片
 * @param borderColor   边框颜色
 * @param borderWidth   边框宽度
 * @param opaue               是否透明背景
 * @return UIImage 实例
 */
+ (instancetype)imageCircleWithImage:(UIImage *)image
                         borderColor:(UIColor *)borderColor
                         borderWidth:(CGFloat)borderWidth
                              opaque:(BOOL)opaue;

/*!
 * @brief 创建圆形图片
 * @param imageNamed     图片名字
 * @param borderImage   边框图片
 * @param borderWidth   边框宽度
 * @param opaue               是否透明背景
 * @return UIImage 实例
 */
+ (instancetype)imageCircleWithImageNamed:(NSString *)imageNamed
                              borderImage:(NSString *)borderImage
                              borderWidth:(CGFloat)borderWidth
                                   opaque:(BOOL)opaue;

/*!
 * @brief 根据指定位置、大小切割图片
 * @param imageNamed    图片名字
 * @param rect                 指定位置、大小
 * @return UIImage 实例
 */
+ (instancetype)imageNamed:(NSString *)imageNamed clipRect:(CGRect)rect;

/*!
 * @brief 根据指定位置、大小切割图片
 * @param image               图片对象
 * @param rect                 指定位置、大小
 * @return UIImage 实例
 */
+ (instancetype)image:(UIImage *)image clipRect:(CGRect)rect;

/*!
 * @brief 根据指定大小， 按照宽度进行缩减
 * @param sourceImage                         图片对象
 * @param defineWidth            指定尺寸
 * @return UIImage 实例
 */
+ (instancetype)imageCompressForWidthScale:(UIImage *)sourceImage targetWidth:(CGFloat)defineWidth;

/*!
 * @brief 创建三角形图片
 * @param size                三角形宽高
 * @param tintColor     填充颜色
 * @return UIImage 实例
 */
+ (instancetype)triangleImageWithSize:(CGSize)size tintColor:(UIColor *)tintColor;

/*!
 * @brief 创建纯色图片
 * @param color     填充颜色
 * @return UIImage 实例
 */
+ (instancetype)createImageWithColor:(UIColor *)color;

/*!
 * @brief 压缩图片大小(二分法)
 * @param targetImage     压缩的图片
 * @param size     压缩大小
 * @return UIImage 实例
 */
+ (instancetype)compressImage:(UIImage *)targetImage toSize:(CGFloat)size;

@end
